/**
 * Created by guo.xiaomin on 2017-12-12.
 */
var async = require('async');
var moment = require('moment');
var User = mongoose.model('user');
var userInvitation = mongoose.model('user_invitation');

exports.bindInviterAndInvitee = function (inviterMobilePhone, inviteeMobilePhone, callback) {

    // 邀请人和被邀请人手机号
    logger.debug("邀请人和被邀请人手机号..." + inviterMobilePhone + "@" + inviteeMobilePhone);

    async.parallel([
        function(callbackInner) {
            User.findOne({"mobilePhone" : inviterMobilePhone}, {"_id" : 1}).exec(function(err, result) {
                if(result) {
                    callbackInner(null, result._id);
                } else {
                    callbackInner(null, null);
                }
            });
        },
        function(callbackInner) {
            User.findOne({"mobilePhone" : inviteeMobilePhone}, {"_id" : 1}).exec(function(err, result) {
                if(result) {
                    callbackInner(null, result._id);
                } else {
                    callbackInner(null, null);
                }
            });
        }
    ], function(err, result) {
        var inviterId = result[0];
        var inviteeId = result[1];
        logger.debug("邀请人和被邀请人ID..." + inviterId + "@" + inviteeId);
        if(inviterId && inviteeId) {

            userInvitation.findOne({"invitee" : inviteeId}).exec(function(err, result) {
                if(result) {
                    logger.debug("被邀请人已和其他邀请人绑定,未处理..........");
                    callback(null, "被邀请人已和其他邀请人绑定,未处理...");
                } else {
                    userInvitation.findOne({"inviter": inviteeId , "invitee" : inviterId}).exec(function(err, result) {
                        if(result) {
                            logger.debug("已存在绑定关系,不可以反向绑定,未处理..........");
                            callback(null, "已存在绑定关系,不可以反向绑定,,未处理...");
                        } else {
                            userInvitation.findOne({"inviter" : inviterId, "invitee" : inviteeId}).exec(function(err, result) {
                                if(result) {
                                    logger.debug("已存在绑定关系,未处理..........");
                                    callback(null, "已存在绑定关系,未处理...");
                                } else {
                                    logger.debug("不存在绑定关系...");
                                    var tempDate = new Date();
                                    var temp = new userInvitation();
                                    temp.inviter = inviterId;
                                    temp.invitee = inviteeId;
                                    temp.score = 1;
                                    temp.type = 1;
                                    temp.manualStatus = 1; // 手动增加
                                    temp.dateLastModified = tempDate;
                                    temp.dateCreated = tempDate;
                                    temp.save(function (err, saveResult) {
                                        console.log("save success...");
                                        callback(null, "保存成功...");
                                    });
                                }
                            });
                        }
                    });
                }
            });
            // userInvitation.findOne({"inviter" : inviterId, "invitee" : inviteeId}).exec(function(err, result) {
            //     if(result) {
            //         logger.debug("已存在绑定关系,未处理..........");
            //         callback(null, "已存在绑定关系,未处理...");
            //     } else {
            //         logger.debug("不存在绑定关系...");
            //         var tempDate = new Date();
            //         var temp = new userInvitation();
            //         temp.inviter = inviterId;
            //         temp.invitee = inviteeId;
            //         temp.score = 1;
            //         temp.type = 1;
            //         temp.manualStatus = 1; // 手动增加
            //         temp.dateLastModified = tempDate;
            //         temp.dateCreated = tempDate;
            //         temp.save(function (err, saveResult) {
            //             console.log("save success...");
            //             callback(null, "保存成功...");
            //         });
            //     }
            // });
        } else {
            console.log("邀请人或被邀请人ID为空...");
            if(!inviterId && !inviteeId) {
                callback(null, "邀请人和被邀请人手机号对应用户不存在...");
            } else if (!inviterId) {
                callback(null, "邀请人手机号对应用户不存在...");
            } else {
                callback(null, "被邀请人手机号对应用户不存在...");
            }
        }
    });
};